function add(a, b) {
  console.log('执行计算');
  return a + b;
}

const resolver = (...args) => {
  return JSON.stringify(args);
};
// 记忆函数
function memoize(func, resolver) {
  // 缓存对象，存放参数和结果的对应关系
  const cache = {};
  return (...args) => {
    const key = resolver(...args);
    if (cache[key]) {
      return cache[key];
    } else {
      return (cache[key] = func(...args));
    }
  };
}

const memoizeAdd = memoize(add, resolver);
// console.log(memoizeAdd(1, 2));
// console.log(memoizeAdd(1, 2));
// console.log(memoizeAdd(1, 2));
module.exports = memoizeAdd;
